# notenogram
### (read as note-nogram)
Chill analog-styled Gameboy Advance picross/nonogram/hanjie/griddler game made with [Butano](http://https://github.com/GValiente/butano) for [GBA Jam 2022](http://https://itch.io/jam/gbajam22), with some gameplay elements inspired by [Battle Picross by Sean Reid](https://pdroms.de/files/nintendo-gameboyadvance-gba/battle-picross-v1-0).

## Features (WIP, subject to change):
* 21 original 12x12 picross puzzles to solve
* cringy Japanese anime girl voice clips provided by me
* fancy bossanova module music *not* made by me (not now at least)
* story mode that puts one's strategy skills to the test and has three different endings based on said skills
* tutorial mode that explains picross basics and some solving strategies
* creator mode that allows making puzzles and sharing them via GBA save files (*any* save files)
* more original character cameos?

## Controls:
* **A button** - color the square the pen cursor is pointing at/confirm menu option/skip text
* **B button** - cross out the square/exit menu
* **D-pad** - move the cursor (*hint: pressing and holding a directional key while holding A or B on the picross grid will mark otherwise empty squares as either "on" or "off" in the selected direction*)
* **Select** - exit puzzle screen
* **Start (in creator mode)** - write current puzzle to SRAM
* **L or R button (in creator mode)** - switch custom puzzle slots in SRAM to write to (only three slots available for now, writing to a full slot will overwrite its contents)

## Issues
* VBA-M saves not being written to during gameplay - FIXED (probably, done by updating to latest Butano version)
* Broken font on exiting to main menu state - FIXED, now to prevent any shallow copies of bn::sprite\_text\_generator pointers

## TODO
* Completely replace boolean arrays with unsigned integers for quicker reads, writes and condition checks (*pending, reduces ROM size by about 2kB, but makes mistake detection harder to implement*)
* Figure out how to design the main game state interface class to avoid any chaos in overridden methods and simplify game loop coding (and reduce used backgrounds)
* Update story mode with better graphics and more exclusive puzzles
* Create a tiny app for converting hex data/image files into game code-readable data
* Add option menu for customizing visuals and gameplay
* Make some lo-fi tracker beats to solve griddlers to
* Bwehh
